<?php

require_once(BaseConfig::LoadClass('objeto_base.class.php'        ));
require_once(BaseConfig::LoadClass('filtro.class.php'             ));
require_once(BaseConfig::LoadClass('abc.class.php'                ));
require_once(BaseConfig::LoadClass('datos_cotizacion_qualitas.class.php'));

class CotizacionAna extends ObjetoBase {
  var $intIdCotizacion    ;
  var $intIdDatoCotizacion;
  var $intTipo            ;
  var $strNoCotizacion    ;
  var $fltPrimaNeta       ;
  var $fltPrimaTotal      ;
  var $strXMLEnvio        ;
  var $strXMLRespuesta    ;
  var $strArrDatos        ;
  
  function CotizacionAna($intIdCotizacion = 0) {
    $arrMapaDatos = Array();
    
    $arrMapaDatos['id_cotizacion'     ] = Array('NombreVariable' => 'intIdCotizacion'    , 'TipoVariable' => 'I');
    $arrMapaDatos['id_dato_cotizacion'] = Array('NombreVariable' => 'intIdDatoCotizacion', 'TipoVariable' => 'N');
    $arrMapaDatos['tipo'              ] = Array('NombreVariable' => 'intTipo'            , 'TipoVariable' => 'N');
    $arrMapaDatos['no_cotizacion'     ] = Array('NombreVariable' => 'strNoCotizacion'    , 'TipoVariable' => 'S');
    $arrMapaDatos['prima_neta'        ] = Array('NombreVariable' => 'fltPrimaNeta'       , 'TipoVariable' => 'N');
    $arrMapaDatos['prima_total'       ] = Array('NombreVariable' => 'fltPrimaTotal'      , 'TipoVariable' => 'N');
    $arrMapaDatos['xml_envio'         ] = Array('NombreVariable' => 'strXMLEnvio'        , 'TipoVariable' => 'S');
    $arrMapaDatos['xml_respuesta'     ] = Array('NombreVariable' => 'strXMLRespuesta'    , 'TipoVariable' => 'S');
    $arrMapaDatos['arr_datos'         ] = Array('NombreVariable' => 'strArrDatos'        , 'TipoVariable' => 'S');

    $this->__ArmarDatosPrivados('cotizaciones_ana', $arrMapaDatos, 'id_cotizacion');
    $this->SeleccionarPorIndice($intIdCotizacion);
  }
  
  static function ObtenerXMLImpresion($strPoliza) {
    // Constantes
    $strNoNegocio      = "423"; // "376";
    $strTarifa         =  1303;
    $strAgente         = "04193";
    
    $strXMLActual  = '';
    $strXMLActual .= '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">';
    $strXMLActual .= '  <soap:Body>';
    $strXMLActual .= '    <Transaccion xmlns="http://tempuri.org/">';
    $strXMLActual .= '      <XML>';
    $strXMLActual .= '        <transacciones xmlns="">';
    $strXMLActual .= '          <transaccion version="1" tipotransaccion="I" negocio="' . $strNoNegocio . '">';
    $strXMLActual .= '            <poliza id="' . substr($strPoliza, 0, -6) . '" endoso="' . substr($strPoliza, -6) . '" inciso="1" link=""/>';
    $strXMLActual .= '            <error/>';
    $strXMLActual .= '          </transaccion>';
    $strXMLActual .= '        </transacciones>';
    $strXMLActual .= '      </XML>';
    $strXMLActual .= '      <Tipo>Impresion</Tipo>';
    $strXMLActual .= '      <Usuario>' . $strAgente . '</Usuario>';
    $strXMLActual .= '      <Clave>PICK7756</Clave>';
    $strXMLActual .= '    </Transaccion>';
    $strXMLActual .= '  </soap:Body>';
    $strXMLActual .= '</soap:Envelope>';
    
    $strXMLActual = Variables::QuitarEspaciosRepetidos($strXMLActual);
    $strXMLActual = str_replace("> <", "><", $strXMLActual);
    return $strXMLActual;
  }
  
  /**
   * @param DatosCotizacionQualitas $oDatosCot
   */
  static function ObtenerXMLPeticion($oDatosCot, $intPaquete, $strTipoTrans = "C") {
    $oTemplate = new Template();
    $oConecta  = new Conecta();
    
    // Constantes
    if($oDatosCot->strFormaPago == "TARJETA") {
      $strNoNegocio      = "434"; //376";
    } else {
      $strNoNegocio      = "423"; //376";
    }
    $strTarifa         =  1303;
    $strAgente         = "04193";
    
    if($strTipoTrans == "C") {
      $strSerie          = "";
      $strCotizacion     = "";
      $strPlacas         = "";
      $strNombreCompleto = "";
      $strLicencia       = "";
      $strMotor          = "";
      $strFecNac         = "";
      $strOcupacion      = "";
      $strCalle          = "";
      $strNumInt         = "";
      $strNumExt         = "";
      $strRFC            = "";
      $strColor          = "01";
      
      $strExtraTarjeta   = "";
      
      $strTicoDesc       = "Cotizacion";
      
      $strTemplateCot    = "cotizacion_ana.tpl.php";
    } else if($strTipoTrans == "E") {
      $strConsulta = "SELECT * FROM cotizaciones_ana WHERE id_dato_cotizacion = {$oDatosCot->intIdDatoCotizacion} AND tipo = $intPaquete";
      $oConecta->Consulta($strConsulta);
      $arrDatosCot = unserialize($oConecta->Field('arr_datos'));
      
      $strSerie          = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["vehi"]["serie"   ])));
      
      $strCotizacion     = $arrDatosCot["datos"]["cotizacion"];
      $strPlacas         = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["vehi"]["placas"  ])));
      $strNombreCompleto = "{$oDatosCot->strAPaterno} {$oDatosCot->strAMaterno} {$oDatosCot->strNombre}";
      $strLicencia       = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["vehi"]["licencia"])));
      $strMotor          = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["vehi"]["motor"   ])));
      $strFecNac         = date("d/m/Y", strtotime($_POST["datos"]["aseg"]["fnac"]));
      $strOcupacion      = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["aseg"]["ocupa"   ])));
      $strCalle          = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["aseg"]["calle"   ])));
      $strNumInt         = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["aseg"]["num_int" ])));
      $strNumExt         = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["aseg"]["num_ext" ])));
      $strColor          = sprintf("%02d", $_POST["datos"]["vehi"]["color"]);
      
      $strRFC            = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["rfc"     ])));
      
      $strExtraTarjeta   = "";
      if($oDatosCot->strFormaPago == "TARJETA") {
        // Formar la parte del XML que va para la tarjeta
        $strCT_Cliente      = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["cliente"                 ])));
        $strCT_Numero       = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["numero"                  ])));
        $strCT_Vencimiento  = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["vencimiento"             ])));
        $strCT_CodSeguridad = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["codigoseguridad"         ])));
        $strCT_Banco        = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["banco"                   ])));
        $strCT_Direccion    = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["direcciontarjetahabiente"])));
        $strCT_Envio        = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["envio"                   ])));
        $strCT_RFC          = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["rfc"                     ])));
        $strCT_Fiscal       = str_replace("'", "", str_replace('"', "", str_replace("|", "", $_POST["datos"]["pago"]["fiscal"                  ])));
        
        $strExtraTarjeta   .= "<tarjetacredito cliente=\"$strCT_Cliente\" numero=\"$strCT_Numero\" vencimiento=\"$strCT_Vencimiento\" codigoseguridad=\"$strCT_CodSeguridad\"/>";
        $strExtraTarjeta   .= "<domiciliacion banco=\"$strCT_Banco\" direcciontajetahabiente=\"$strCT_Direccion\" envio=\"$strCT_Envio\" rfc=\"$strCT_RFC\" fiscal=\"$strCT_Fiscal\"/>";
      }
      
      $strTicoDesc       = "Emision";
      
      $strTemplateCot    = "poliza_ana.tpl.php";
      $strTemplateCot    = "cotizacion_ana.tpl.php";
    }
    
/*
    $strTipoMovimiento =     2;
    $strTipoUso        = "1";
// */
//    $intIdEstado       = $oDatosCot->intEstado      ;
    $strCP             = $oDatosCot->intCP          ;
    $strConsulta = "SELECT id_edo, id_mun FROM cat_cp_ana WHERE cp = $strCP";
    $oConecta->Consulta($strConsulta);
    $strCodPoblacion = sprintf("%02d%03d", $oConecta->Field('id_edo'), $oConecta->Field('id_mun'));
    
    global $strGUsarTablaMarcasANA;
    global $strGUsarTablaMarcasASD;
    if($strGUsarTablaMarcasANA) {
      $strCveAMIS      = Variables::GetValueByTableMultipleIndex("cat_modelos_ana"      , "amis,modelo"     , "ana", $oDatosCot->strAMIS . ",{$oDatosCot->intMarcaAnio}");
    } else if($strGUsarTablaMarcasASD) {
      $strCveAMIS      = Variables::GetValueByTable("cat_modelos_antartica", "id_modelo", "cve_ana", $oDatosCot->strAMIS);
    } else {
      $strCveAMIS      = Variables::GetValueByTable("trans_amis_ana", "amis", "ana", Variables::GetValueByTableMultipleIndex("cat_modelos_qualitas", "amis,modelo", "nva_amis", sprintf("%05d", $oDatosCot->strAMIS) . ",{$oDatosCot->intMarcaAnio}"));
    }
    $strNombre         = $oDatosCot->strNombre      ;
    $strAPaterno       = $oDatosCot->strAPaterno    ;
    $strAMaterno       = $oDatosCot->strAMaterno    ;
    $strAnioModelo     = $oDatosCot->intMarcaAnio   ;
    $dteFechaEmision   = date("d/m/Y", strtotime($oDatosCot->dteFechaEntrada));
    $dteFechaInicio    = date("d/m/Y", strtotime($oDatosCot->dteFechaEntrada));
    $dteFechaTermino   = date("d/m/Y", mktime(0, 0, 0, date("m", strtotime($oDatosCot->dteFechaEntrada)) + $oDatosCot->intVigencia, date("d", strtotime($oDatosCot->dteFechaEntrada)), date("Y", strtotime($oDatosCot->dteFechaEntrada))));

    
    eval('$strRes = "' . $oTemplate->Get('templates_xml/' . $strTemplateCot) . '";');
    
//    return $strRes;
    $strRes = Variables::QuitarEspaciosRepetidos($strRes);
    $strRes = str_replace("> <", "><", $strRes);
    
    return $strRes;
  }
}

class FiltroCotizacionAna extends Filtro {
  function FiltroCotizacionAna() {
    $arrMapaDatos['id_dato_cotizacion'] = "Cotizacion General";
    $arrMapaDatos['tipo'              ] = "Tipo"              ;
    
    parent::CrearFiltro("cotizaciones_ana", "id_cotizacion", $arrMapaDatos, "Busqueda", "", "", "CotizacionAna");
  }
}

class ABC_CotizacionAna extends ABC_Base {
  function ABC_CotizacionAna() {
    $strClaseBase     = "CotizacionAna"      ;
    $strClaseFiltro   = "FiltroCotizacionAna";
    $strCampoMostrar  = "id_cotizacion"      ;
    $strOpcionListado = "abc_cotizacion_ana" ;
    $strOpcionGuardar = "abc_cotizacion_ana" ;

    $arrMapaDatos = array();
    $arrMapaDatos['id_dato_cotizacion'] = "Cotizacion General";
    $arrMapaDatos['tipo'              ] = "Tipo"              ;
    
    $arrMapaDatos['no_cotizacion'     ] = "No. Cotizacion"    ;
    
    $arrMapaDatos['prima_neta'        ] = "Prima neta"        ;
    $arrMapaDatos['prima_total'       ] = "Prima Total"       ;
    
    $arrMapaDatos['xml_envio'         ] = "XML Envio"         ;
    $arrMapaDatos['xml_respuesta'     ] = "XML Respuesta"     ;
    $arrMapaDatos['arr_datos'         ] = "Arreglo Datos"     ;
    

    $arrReferencias = array();
    
    $this->Inicializar($strClaseBase, $arrMapaDatos, $strOpcionListado, $strOpcionGuardar, $strCampoMostrar, $strClaseFiltro, $arrReferencias);
    
    $this->bolABCLista             = true ;
    $this->bolABCListaOcultarTD    = true ;
    $this->bolPosibleNuevoElemento = false;
    $this->intTipoGuardado         = 1    ;
    $this->intNumeroRes            = 20   ;
    $this->bolSoloLectura          = true ;
    $this->bolOcultarTituloEnLista = true ;
    $this->bolABCListaMostrarInfo  = true ;
  }
}

?>